﻿using System.ComponentModel.DataAnnotations;

namespace AuSys.Models.Files
{
    /// <summary>
    /// 唯一文件实体，没有可读的名称属性<br/>
    /// 若任何人上传第二次同样内容的文件，则不会重新创建<br/>
    /// UploaderId是第一个上传者的Id<br/>
    /// 所以后续的上传者Id可能并不是UploaderId<br/>
    /// 如果需要“属于用户的文件”，应另外创建类似“UserToFileItem”的实体
    /// </summary>
    public class FileItem:IDbModel
    {
        public int Id { get; set; }
        [MaxLength(nameStoreMaxLength)]
        public required string NameStore { get; set; }
        public int Length { get; set; }
        /// <summary>
        /// 文件的MD5值（小写16进制）
        /// </summary>
        [MaxLength(hashMaxLength)]
        public required string Hash { get; set; }
        public int UploaderId { get; set; }
        public DateTime LastUpdate { get; set; }
        public bool Deleted { get; set; }

        public const int nameStoreMaxLength = 32;
        public const int hashMaxLength = 32;
    }
}
